package info.grid.despierto.db;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

/**
 * データベース処理クラス
 */
public class DatabaseOpenHelper extends SQLiteOpenHelper {

	// データベース名の定数
	private static final String DB_NAME = "DESPIERTO.db";

	/**
	 * コンストラクタ
	 */
	public DatabaseOpenHelper(Context context) {
		// 指定したデータベース名が存在しない場合は、新たに作成されonCreate()が呼ばれる
		// バージョンを変更するとonUpgrade()が呼ばれる
		super(context, DB_NAME, null, 1);
	}

	/**
	 * データベースの生成に呼び出されるので、 スキーマの生成を行う
	 */
	@Override
	public void onCreate(SQLiteDatabase db) {
		db.beginTransaction();

		try{
			// テーブルの生成
			StringBuilder createSql = new StringBuilder();
			createSql.append("create table " + GroupTable.TABLE_NAME + " (");
			createSql.append(GroupTable.COLUMN_ID + " integer primary key autoincrement not null,");
			createSql.append(GroupTable.COLUMN_GROUP_NAME + " text not null,");
			createSql.append(GroupTable.COLUMN_GROUP_ONOFF + " int,");
			createSql.append(GroupTable.COLUMN_REPEAT_EVERYDAY + " int,");
			createSql.append(GroupTable.COLUMN_REPEAT_SUN + " int,");
			createSql.append(GroupTable.COLUMN_REPEAT_MON + " int,");
			createSql.append(GroupTable.COLUMN_REPEAT_TUE + " int,");
			createSql.append(GroupTable.COLUMN_REPEAT_WED + " int,");
			createSql.append(GroupTable.COLUMN_REPEAT_THU + " int,");
			createSql.append(GroupTable.COLUMN_REPEAT_FRI + " int,");
			createSql.append(GroupTable.COLUMN_REPEAT_SAT + " int");
			createSql.append(")");

			android.util.Log.i("despierto",createSql.toString());

			db.execSQL( createSql.toString());
			db.setTransactionSuccessful();
			android.util.Log.i("despierto","GroupTable_create_Successful");
		} finally {
			db.endTransaction();
		}
	}

	/**
	 * データベースの更新
	 * 親クラスのコンストラクタに渡すversionを変更したときに呼び出される
	 */
	@Override
	public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
		// データベースの更新
		android.util.Log.i("despierto","Database_onUpgrade old:"+oldVersion+" new:"+newVersion);
	}
}
